home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / ai / gaf200b / doc / gaf.doc < prev    next >
Text File  |  1994-10-27  |  48KB  |  1,009 lines

  1. Introduction
  2.    This document is intended to be the user guide for GA-FuzzyWare.  It
  3.    covers basic concepts of GAF (sections 1 - 4), interactive interfaces
  4.    (sections 5 - 14), and command arguments and configuration (sections 15 -
  5.    16).
  6.  
  7.    Section 1: Running Modes
  8.        A brief description of all running modes provided by GAF.
  9.  
  10.    Section 2: Schedule Policy
  11.        Describes the scheduling policy under different schedule modes
  12.        provided by GAF.
  13.  
  14.    Section 3: Emulation
  15.        Covers essentials of the emulation segment(s) under GAF.
  16.  
  17.    Section 4: Adaptation
  18.        The details about how adaptation works in the GAF environment.
  19.        
  20.    Section 5: System Menu
  21.        Explains the menu bar of GAF, and how it works.
  22.  
  23.    Section 6: GAF Windows
  24.        Explains different windows provided in GAF and covers contents of
  25.        these windows.
  26.  
  27.    Section 7: File Menu
  28.    Section 8: Run Menu
  29.    Section 9: Option Menu
  30.    Section 10: Segment Menu
  31.    Section 11: Display Menu
  32.    Section 12: Adapt Menu
  33.    Section 13: Method Menu
  34.        Detail descriptions on the use of all the pull down menus.
  35.  
  36.    Section 14: Function Keys
  37.        Covers available function keys provided by GAF.
  38.  
  39.    Section 15: Command Syntax
  40.        Explains how to invoke GAF from the DOS and available command
  41.        arguments.
  42.  
  43.    Section 16: Configuration
  44.        Brief describes the start up configuration file.
  45.  
  46.    GAF Conventions
  47.    The following conventions are used throughout this document.
  48.        'Enter'    means the Enter key or the Return key.
  49.        Type 'key' means press the specified key without 'Enter'.
  50.        Press F?   means press the specified function key without 'Enter'.
  51.        Enter  means type in the specified text and followed by 'Enter' key.
  52.        Select/Use an option:
  53.               use cursor keys to move the highlighted option and then
  54.               press 'Enter', or type the character on the left.
  55.        GAF is not case sensitive, use either upper or lower cased key.
  56.  
  57.    Other GAF References
  58.    Please refer to following GAF documents:
  59.        fcl.doc        fuzzy control language document
  60.        tutorial.doc   tutorial for construct a GAF segment
  61.        demo.doc   how to run the demon example
  62.  
  63. Running Modes
  64.    There are five running modes provided by GAF: control, monitor, check
  65.    segment, simulation, and adapt.  Note that control and monitor modes are
  66.    not supported for current release.
  67.  
  68.    Control Mode
  69.        The control mode provides users for online control and limited user
  70.        interfaces for interacting with the real control environment and
  71.        fuzzy rule segments.  The output of all segments are routed through
  72.        output channels, and the inputs are brought in through the input
  73.        channels.
  74.  
  75.    Monitor Mode
  76.        The monitor mode provides users for online monitoring and analyzing
  77.        the real control environment and fuzzy rules.  The output of all
  78.        segments are for display only, they are NOT routed through output
  79.        channels, but the inputs are brought in through the input channels.
  80.  
  81.    Check Segment
  82.        This feature allows user to examine one segment at a time.  Combined
  83.        with other segment functions, such as preset and modify variables,
  84.        user can check the response of the selected segment with fixed
  85.        (constant) or manual values for inputs and local variables.
  86.  
  87.    Simulation Mode
  88.        The simulation mode offers user to simulate the system with feedback
  89.        or emulation segment(s) for integration test.  The emulation can be
  90.        user defined segment(s) or user provided data set with EMUL_SEGMENT
  91.        or FEEDBACK keyword.  The simulation environment allows user to tune
  92.        up and debug control system with features such as single step and
  93.        others.  Please refer to Emulation section for more details about
  94.        feedback segments.
  95.  
  96.    Adapt mode
  97.        The adapt mode provides an offline adaptation of the fuzzy control
  98.        system.  An evaluation segment and its corresponding evaluation
  99.        result score (an output variable) must be specified.  When adapt mode
  100.        is selected, GAF automatically optimizes the control segment by
  101.        adjusting/adding/deleting rules and adjusting fuzzy membership sets. 
  102.        Please refer to the Adaptation section for more details of genetic-
  103.        adaptation and also refer to FCL.DOC for defining an evaluation
  104.        segment.
  105.  
  106. Schedule Policy
  107.        There are four different time modes: real time mode, simulated time
  108.        mode, sim-schedule mode, and 24 hours clock mode.  The real time mode
  109.        uses actual system clock (computer clock) for scheduling the
  110.        segments.  This mode is the only allowed mode for running in the
  111.        control mode.  The following is an example of how real time mode
  112.        schedules a three segments system with 0.1, 0.2, and 0.3 cycle time. 
  113.        Assume that each segment takes 0.05 second to run, and all three
  114.        segments are enabled all the time.  GAF scheduling table will be:
  115.          Sweep #  Time       Seg 1  Seg 2   Seg 3
  116.         --------  -----      -----  -----   -----
  117.               1   0.00       Run    Run     Run
  118.               2   0.15       Run    ---     ---
  119.               3   0.20       ---    Run     ---
  120.               4   0.25       Run    ---     ---
  121.               5   0.30       ---    ---     Run
  122.  
  123.        Instead of using real system time, the simulated time mode uses fixed
  124.        time interval to simulate the schedule rate for the system.  For
  125.        example if the user specifies schedule interval is 0.1 second.  Then
  126.        the above scheduling table will be:
  127.          Sweep #  Time   Seg 1   Seg 2      Seg 3
  128.         --------  -----  -----   -----      -----
  129.               1   0.0    Run     Run        Run
  130.               2   0.1    Run     ---        ---
  131.               3   0.2    Run     Run        ---
  132.               4   0.3    Run     ---        Run
  133.               5   0.4    Run     Run        ---
  134.  
  135.        The sim-schedule mode resembles the simulated time mode, except that
  136.        it does not use the cycle time of each segment for scheduling. 
  137.        Instead the sim-schedule mode uses the schedule rate for all
  138.        segments, i.e. runs all segments all the time.  Therefor, the
  139.        scheduling table will be:
  140.          Sweep #  Time   Seg 1   Seg 2      Seg 3
  141.         --------  -----  -----   -----      -----
  142.               1   0.0    Run     Run        Run
  143.               2   0.1    Run     Run        Run
  144.               3   0.2    Run     Run        Run
  145.               4   0.3    Run     Run        Run
  146.               5   0.4    Run     Run        Run
  147.  
  148.        The simulated clock mode is a variation of sim-schedule mode.  This
  149.        mode allows user to simulate 24 hours clock within a single plot
  150.        frame.
  151.  
  152.  
  153. Emulation
  154.    An emulation segment is just like a control segment with EMUL_SEGMENT or
  155.    FEEDBACK keyword instead of SEGMENT.  You can define the feedback
  156.    segment with fuzzy rules, math formulas, or data tables.  Multiple
  157.    feedback segments are allowed.  In simulation mode GAF automatically
  158.    closes the control and feedback loop with the same variable names.  For
  159.    example, if there is an input variable "POS_ERR" defined in the control
  160.    segment, and it is also declared as an output in the feedback segment. 
  161.    Then GAF automatically uses the output value from the feedback segment
  162.    as the input value of the control segment.  On initialization, GAF searches
  163.    through all segments to find matches among regular (control) and feedback
  164.    segments.  Please refer to Fuzzy Control Language (FCL) guide for
  165.    constructing a GAF segment.
  166.  
  167.    GAF supports two kinds of feedback modules.  The first one is using user
  168.    data, from field measured data or generated from higher level model.  The
  169.    other choice is to use user defined feedback segment.
  170.  
  171.    To use user data as feedback, user simply put data in a text file with
  172.    spread sheet like format, i.e., one column per variable, with different
  173.    variables in a row.  The data set must be an evenly distributed complete
  174.    data set with both input and output variables declared as a normal
  175.    segment.  GAF only has limited capability to handle non-evenly distributed
  176.    data set.  The output variables defined in this file will be treated as
  177.    output of a feedback segment.
  178.  
  179.    Alternatively, user can use the combination of fuzzy rules and math
  180.    processing (pre and post processing) to build an emulation segment to
  181.    close the feedback loop in order to simulate the system.
  182.  
  183.    One of the important features in GAF is that you can tune your system by
  184.    trying different schedule rate (or cycle time defined in each segment). 
  185.    There are different time modes offered by simulation mode and check mode. 
  186.    These time modes are: real time mode, simulated time mode, sim-schedule
  187.    mode, and 24 hours clock mode.  Please refer to the Schedule Policy
  188.    section for details about these time modes.
  189.  
  190.  
  191. Adaptation
  192.    While fuzzy logic mimics the human's imprecise reasoning, the genetic
  193.    algorithm mimics the evolution of the nature.  The genetic algorithm uses
  194.    randomization techniques to reach local optimum without exhausting
  195.    searching through the solution state space.  With randomization, genetic
  196.    algorithm is also capable of escaping from local optimum and hopping into
  197.    a new better state.  GAF uses genetic algorithm to derive proper rules
  198.    and fuzzy sets from the initial rules.  By changing, adding, deleting rules
  199.    and fuzzy membership sets of the fuzzy system, the genetic algorithm
  200.    automatically adapts and optimizes the fuzzy control system.
  201.  
  202.    Besides the feedback segment, the adapt mode also needs an evaluation
  203.    segment for evaluating the result of adaptation.  With current release,
  204.    user must build an evaluation segment and specify the result variable of 
  205.    evaluation.  A canned evaluation will be supported in future release.
  206.  
  207.    Basics for Adaptation
  208.        The basic concept of genetic-adaptation process is that GAF
  209.        produces a new segment (by mutation or crossover from existing
  210.        segment(s)) and then evaluates the new segment and compares its
  211.        result against old ones (saved in the population pool).  If a better
  212.        result is obtained, the new segment is inserted into the population
  213.        pool and the worst one in the pool will be removed.
  214.  
  215.        After starting adapt, GAF evaluates the selected adapt segment and
  216.        saves it on the top of the population pool.  The pool can save up to
  217.        one hundred best generations in the order of their performance --
  218.        the evaluation result.   GAF then repeats the genetic-adaptation
  219.        process -- creation, evaluation, and judging the result, until
  220.        reaches a pre-specified maximum iteration or quit from the user.
  221.  
  222.    Reproduction from Elites
  223.        One of the concept in genetic algorithm is that the fittest gets the
  224.        highest chances to produce its off-springs, so it has the best chance
  225.        to preserve its better genes.
  226.  
  227.        GAF uses weighed random to select one or two segments out of the
  228.        population pool to reproduce a "next generation" based on one of the
  229.        methods described under Adaptation Method.  So, the fittest
  230.        generation, which has the best evaluation result, has the highest
  231.        weight in the weighed random selection.
  232.  
  233.    Evaluation Criteria
  234.        The evaluation process for genetic-adapt is defined as follow.  GAF
  235.        runs through all preset cycles, which are preset conditions defined
  236.        in evaluation and other segments.  After each cycle the result score
  237.        from the evaluation segment (see Evaluation under Option menu for
  238.        defining result variable) is compared to the minimum score.  If it is
  239.        below the minimum and the population pool has been filled up, GAF
  240.        stops further evaluation and delete this new generation.  Otherwise
  241.        GAF keeps evaluation through all preset cycles.  The overall
  242.        evaluation result will be the average score of all the preset cycles.
  243.  
  244.        User can specify the test time for preset test cycle and number of
  245.        samples should be taken for evaluation.  The test time is used to run
  246.        each preset test, then GAF samples the score result for the
  247.        specified number of times.  The preset evaluation result will be the
  248.        average of all samples, and the final result will be the average of all
  249.        preset cycles.  For example, if the test time is two seconds and the
  250.        number of samples is 4 (with 0.1 sample rate), the total time for a
  251.        preset cycle will be 2.3 seconds.
  252.  
  253.    Adaptation Method
  254.        GAF uses weighed random to select one of the genetic algorithms for
  255.        creating next generation.  GAF allows user to change all predefined
  256.        methods used by GAF.  Followings are brief descriptions of these
  257.        methods.
  258.  
  259.        Change rules
  260.            The change rules method adapts the existing rules, i.e., modify
  261.            existing rules with mutation and other algorithms.  No new rule 
  262.            will be added and no rule will be disabled.
  263.  
  264.        Adjust input set
  265.            The adjust input set method alters the fuzzy membership sets
  266.            defined in the segment.  The following algorithms are used to
  267.            modify the membership set.
  268.  
  269.            Mutate
  270.               The mutate method randomly change one or two "cell" in the
  271.               membership set.
  272.  
  273.            Crossover
  274.               The crossover method uses two parent genes (two
  275.               generations from the gene pool) to generate next generation
  276.               by inheriting cells from either parent.
  277.  
  278.            Intensify/dilute
  279.               The intensify method intensifies the membership set, the
  280.               dilute method dilutes the membership set.
  281.  
  282.            Broaden/restrict
  283.               This method either broaden or restrict the fuzzy membership
  284.               set.
  285.  
  286.            Shift fuzzy set
  287.               The shift method shifts the membership set along the value
  288.               without changing its shape.
  289.  
  290.            Change truth
  291.               This method alters the truth value of the selected fuzzy
  292.               membership set.
  293.  
  294.        Adding new rule
  295.            This method creates new generation by adding new rule to the
  296.            segment.  The new rule is created with the same way as described
  297.            in change rule.
  298.  
  299.        Enable and disable rule
  300.            This method disable (or enable) rule to form a new segment.
  301.  
  302.        Alter cycle time
  303.            This method creates new generation by modifying the cycle time
  304.            of the old segment.  The range of cycle time can be specified with
  305.            max and min under adapt menu.
  306.  
  307.        Alter output gain
  308.            This method adjusts the output gain to form a new generation.
  309.  
  310.  
  311.  
  312. System Menu
  313.    The GAF system menu bar, at the top of the screen, is the primary user
  314.    interface to the system.  The system menu bar contains following menu
  315.    items: File, Run, Display, Option, Adapt, Method, Segment, and Help.  Use
  316.    the first character of each menu item or use cursor keys (right/left
  317.    arrows) to select the menu item.  When a menu item is selected a pull down
  318.    menu appears to provide function selection.  To select a function item in
  319.    a pull down menu either by the character on the left of that item or move
  320.    the cursor with up/down arrow keys and then "Enter".  When a function item
  321.    is selected, further secondary menu selection or data entry dialog may
  322.    be provided by that function.  Except rule selection, all secondary menus
  323.    and data entry dialog boxes are displayed immediately beneath the pull down
  324.    menu.  GAF uses rule text window for rule selection.  Press ESC in pull
  325.    down menu and secondary menu will return to system menu (the menu bar).
  326.    Press ESC under system menu will bring up the Run menu, except when the
  327.    system menu was ESCaped from any of the running mode (i.e. from adapting
  328.    or simulation).  Before discussing each menu item in detail, the screen
  329.    windows are explained for clarification.
  330.  
  331.  
  332. GAF Windows
  333.    There are five types of system windows and four types of display windows. 
  334.    The system windows are: menu window, hint window, adapt status window,
  335.    segment title window, and segment display window.  The segment display
  336.    window contains four sub-windows: rule text window (text window), trend
  337.    plot window (plot window), combined result window (result window), and fuzzy
  338.    rule firing window (firing window).
  339.  
  340.    Menu Window
  341.        The menu window is at the top of the screen occupied by the system
  342.        menu bar as described above.  In any of the run mode, the menu window
  343.        is closed; use ESC or F10 to get back to system menu.
  344.  
  345.    Hint Window
  346.        The hint window is at the bottom of the screen to provide user hints
  347.        (available keys or functions) to the user.  Note that in run modes the
  348.        hint window also displays the current schedule rate.
  349.  
  350.    Segment Title Window
  351.        The segment title window (title window) shows the information for the
  352.        selected segment, see Segment section for selecting a segment.  The
  353.        title window is located immediately above segment display window. 
  354.        Example of title window:
  355.            Segment  0   20 Symbols   2 Inp VAR: MOVEMENT POS_ERR
  356.            Cycle 0.06   11 Rules     1 Out VAR: CURRENT
  357.        Where, the first line shows the segment ID, number of fuzzy
  358.        membership symbols, number of input variables, and the names of input
  359.        variables.  The second line shows the cycle rate of the segment,
  360.        number of rules, number of output variables, and the names of output
  361.        variables.
  362.  
  363.    Adapt Status Window
  364.        The adapt status window (adapt window) shows the status of genetic
  365.        adaptation.  Adapt window only exists under genetic adapting mode, it
  366.        is immediately above the title window.  Example of adapt window:
  367.  
  368.        Iteration=50 Items=10 Best=0.95 Last=0.85 Worst=0.55 Good=11 Bad=39
  369.        Generation=4 From=2 Method=ADJUST_INPUT_SET.INTENSIFY_DILUTE
  370.           Mutated set NEG_LARGE defined for POS_ERROR
  371.        Average=0.935  Result= 0.935  0.935  0.935  0.935
  372.        Where:
  373.            Iteration  indicates number of iterations
  374.            Items      items in the best list (gene pool)
  375.            Best       the best score in the gene pool
  376.            Last       the last score in the gene pool
  377.            Worst      the worst score of all iterations
  378.            Good       number of good iteration
  379.            Bad        number of bad iteration
  380.            Generation the generation of current iteration
  381.            From       which one (in the pool) been picked for adapting
  382.            Method     the method used to adapt
  383.            Average    average score for all tests
  384.            Result     score for each test
  385.  
  386.        The third line indicates what was changed for the new generation.  In
  387.        this example, the fuzzy membership set NEG_LARGE defined for
  388.        variable POS_ERROR had been mutated (by INTENSIFY_DILUTE).
  389.  
  390.    Segment Display Window
  391.        The segment display window (display window) displays important status
  392.        and information of the selected segment.  The display window occupies
  393.        the most part of the screen immediately above the hint window.  There
  394.        are four types of sub-windows inside display window for showing fuzzy
  395.        rules and running status: rule text window (text window), trend plot
  396.        window (plot window), combined result window (result window), and fuzzy
  397.        rule firing window (firing window).  The place and area of these sub-
  398.        windows can be rearranged by the user, please see Display menu
  399.        section for rearranging display windows.
  400.  
  401.    Text Window
  402.        The text window shows the rules and status of the rules for current
  403.        selected segment.  Each rule is presented in a row with several
  404.        columns associated with it.  The first column indicates whether the
  405.        rule is disabled (marked with 'x') or fired (marked with '*').  The second
  406.        column shows the rule number.  The rest of columns display the
  407.        content of the rule, i.e., the fuzzy membership set symbol for
  408.        corresponding inputs and outputs.  These content columns are
  409.        presented, in different color, with inputs first then the outputs as
  410.        the same sequence shown in the title window above it.  If local
  411.        variables are selected (see Display section) the local variables are
  412.        displayed after input variables.  In run modes, use cursor keys to
  413.        scroll up, down, right, and left for undisplayed contents.
  414.    
  415.    Trend Plot Window
  416.        The plot window draws the trend graph for all inputs, outputs, and
  417.        selected local variables with time in x-axis and value in y-axis.  Each
  418.        variable has its own sub-window, started from top to bottom, with the
  419.        same sequence and color as in the text window.  See sub-section "Set
  420.        Plot Time Frame" under Display for changing the frame duration.
  421.  
  422.    Combined Result Window
  423.        The result window depicts the result for selected output of the
  424.        segment.  The trapezoid result of all fired rules, which generate non-
  425.        zero output, are in the upper portion of the window .  In the lower
  426.        portion of the window the defuzzified result (combined result) and the
  427.        output value are displayed.  Multiple outputs can be selected with
  428.        split display area.  See sections Segment and Display for selecting
  429.        output and arranging display window.
  430.  
  431.    Rule Firing Window
  432.        The firing window shows the fuzzy inference status (firing condition)
  433.        of selected rules.  This feature along with the stepping mode, under
  434.        simulation or check segment, is the best way to tuneup or debug the
  435.        control system.  You'll find the selected rule's fuzzy sets are
  436.        displayed to the left of the combined result.  The corresponding input
  437.        value for each set is plotted vertically in the same window.  Note
  438.        that each fuzzy set input has the same color as in the text window. 
  439.        Refer to Display section for arranging display window, and Segment
  440.        section for selecting rules.
  441.  
  442. File Menu: File Functions
  443.    The File menu provides the following functions:
  444.  
  445.    Q: Quit
  446.        Select 'Q' or use ALT-Q to exit the program.
  447.  
  448.    O: Open segment
  449.        Select this option to open a segment from the specified file, GAF will
  450.        prompt for the name of the file.  If the default directory is specified 
  451.        (command switch /DIR) and the entered file name does not contain path,
  452.        the default directory will be searched for the specified file name. 
  453.        The segment file can also be specified as the command arguments. 
  454.        When open a new file segment a sequence number will be assigned to
  455.        that segment as its segment ID.  The segment ID  is used for
  456.        displaying segment title.
  457.  
  458.    C: Close segment
  459.        Use to close a segment.  When selected, GAF pops secondary menu for
  460.        a list of all segments for user to select appropriate segment to
  461.        close.  Note that a closed segment will be marked as "disabled" for
  462.        current release, i.e., the memory will not be released.
  463.  
  464.    B: Report selected best list
  465.    A: Report all items in list
  466.    R: Report file
  467.        These options allow user to generate report about the item(s) in the
  468.        best list (population pool).  Use 'R' to set the file name of the report,
  469.        GAF prompts for the file name.  Use 'A' to report all items in the list,
  470.        and use 'B' to select one out of the best list.  When 'B' is selected,
  471.        GAF will prompt for the item number to be reported on.  The item
  472.        number must be between 0 and less than the current population in the
  473.        pool.
  474.  
  475.    L: Enable adapt log
  476.    D: Enable detail log
  477.    G: Log file to
  478.        In adapt mode, GAF can generate a log file for user to review.  Use 'L'
  479.        to enable (disable) the log, use 'D' to switch on (off) detail log.  Use
  480.        'G' to specify the log file name.
  481.  
  482.    E: Enable plot data
  483.    P: Plot data to
  484.        When enabled, GAF generates a data file for the result of each
  485.        iteration.  The data file can be used by MyPlot to plot.  The 'P' option
  486.        specifies the file name of the data file.
  487.  
  488.    S: Generate statistic log
  489.    T: Statistic to
  490.        These options allow user to generate statistic report about the
  491.        adaptation.  Use 'T' to set the file name of the statistic log.  The log
  492.        includes statistics for all methods.  Based on the statistics you may
  493.        want to adjust the weight of the adapt methods.
  494.  
  495.  
  496. Run Menu: System Run Modes
  497.    The Run menu provides different modes for running GAF system.  As
  498.    mentioned, GAF offers following five running modes: control, monitor,
  499.    check segment, simulation, and adapt.  Also provided is to terminate (quit)
  500.    the program.  Although there are five running modes, they can be divided
  501.    into two categories: the control (simulation) portion and the automatic
  502.    adaptation.  While in any of the running modes, use ESC or F10 to escape
  503.    back to or bring up the system menu.  After bring up the system menu other
  504.    functions provided by pull down menus are available except specifically
  505.    noted.  Upon completion of other functions, ESC again will bring you back
  506.    to original running mode.  Use Alt-Q to quit the program.
  507.  
  508.  
  509.    Q: Quit the program
  510.        Select this option or type 'Q' to quit the program.
  511.  
  512.    R: Control Mode
  513.    M: Monitor Mode
  514.        These two modes are disabled for current release.
  515.  
  516.    C: Check Segment
  517.        Use this option to start checking the segment specified from the
  518.        Segment menu.  Use Segment menu to select proper segment, then start
  519.        the check mode by selecting this option.  Basically, the check mode is
  520.        the same as simulation mode, except that only the selected segment
  521.        is enabled.  For available options during checking, please see
  522.        simulation mode's  user interfaces.
  523.  
  524.    Simulation Mode
  525.        Use this option to start the simulation.  Note that you must have
  526.        feedback or emulation segment(s) with EMUL_SEGMENT or FEEDBACK
  527.        keyword.  Or use the Option menu to specify the feedback segment.
  528.  
  529.        When the mode is selected, the current selected segment will be
  530.        displayed if it hasn't already been.  Use any of these keys, described
  531.        as follow, to start the simulation.
  532.  
  533.        Under monitor, check segment, and simulation modes, the following
  534.        interactive user interfaces are supported.
  535.            C      : toggles on/off continuous mode
  536.            F      : continue until the end of the plot frame
  537.            1 ~ 9  : run 1 ~ 9 steps
  538.            0      : run 10 steps
  539.            + -    : increase/decrease sample rate (see below)
  540.            enter  : single step
  541.            ESC    : go to system menu bar
  542.            alt-Q  : quit the program
  543.            F1 ~ F9: see function keys
  544.            cursor keys to scroll up, down, right, and left of text window
  545.  
  546.        All other keys, while not in continuous mode, are treated as "Enter"
  547.        for single step.
  548.  
  549.        Note that during continuous mode only the following keys would halt
  550.        the continuous process: C, ESC, and function keys.  The cursor keys
  551.        will not halt continuous mode, instead, GAF performs the scroll and
  552.        continue its simulation.
  553.  
  554.        There is an easy way to change the sampling rate in sim-schedule and
  555.        simulated time mode.  That is to use the '+' and '-' keys.  By press '+'
  556.        or '-' key, GAF adjusts the schedule rate or cycle time by increasing
  557.        or decreasing an adjustable amount.  Please refer the Option menu
  558.        section for setting the adjust amount.  The current sample rate
  559.        value will be displayed in the hint window at the lower right corner of
  560.        the screen.
  561.  
  562.    A: Adapt mode
  563.        When adapt mode is selected, GAF starts adaptation of the selected
  564.        control segment.  The followings must be specified before starting
  565.        adaptation: the segment to be adapted (optimized), the evaluation
  566.        segment, and the variable for the evaluation result.  GAF stops if any
  567.        of the required is missing.  The following interactive interfaces are
  568.        supported in adapt mode.
  569.            C      : continue
  570.            Alt-C  : switch to continuous mode
  571.            Alt-P  : turn on iteration pause
  572.            Alt-A  : turn on preset cycle pause
  573.            Alt-Q  : quit the program
  574.            ESC    : go to system menu bar
  575.            F1 ~ F6: see function keys
  576.            cursor keys to scroll up, down, right, and left of text window
  577.            All other keys will pause adapting temporary.
  578.  
  579.  
  580.  
  581. Option menu: Change Parameters
  582.    The option pull down menu allows user to change the simulation and
  583.    evaluation environment.  Currently only following functions are
  584.    supported.
  585.  
  586.    R: Real time mode
  587.    T: Sim time mode
  588.    S: Sim schedule mode
  589.    K: Sim clock mode
  590.        These four modes are the basic scheduling policy described in the
  591.        Schedule Policy section.  The selected mode will be marked with "x" on
  592.        the right.
  593.  
  594.    C: Sim schedule rate
  595.        Use this option to set desired time interval in seconds for either
  596.        simulated time mode or sim-schedule mode.  Current value id displayed
  597.        on its right.
  598.  
  599.    I: Increment value
  600.        As mentioned, an easy way to change the simulated schedule rate is
  601.        to use the '+' and '-' keys to increase and decrease the schedule rate. 
  602.        This option allows user to set the amount of increasing/decreasing,
  603.        the default value is 0.005 second.
  604.  
  605.  
  606.    E: Emulation segment
  607.        This option is used to specify the feedback segment.  Normally, this
  608.        option is only used to show the feedback segment, if proper key word
  609.        (FEEDBACK or EMUL_SEGMENT) is used to define the emulation/feedback
  610.        segment.  When selected, a secondary menu contains all segment names
  611.        are displayed for further selection.
  612.  
  613.    V: Eval segment
  614.        This option can be used to specify a user defined evaluation segment
  615.        instead using EVAL_SEGMENT key word to declare it.  The current
  616.        evaluation segment ID and its name are shown, if it is specified.  When
  617.        selected, a secondary menu pops up with names of all segments to
  618.        allow user to select the proper segment.
  619.  
  620.    A: Eval result variable
  621.        Use this option to specify the evaluation result variable.  When
  622.        selected, a secondary menu pops up with names of all variables of the
  623.        specified evaluation segment to allow user to select the proper
  624.        variable.  GAF uses "EVAL_RESULT" as default variable.
  625.  
  626.    B: Eval null band
  627.        This option allows user to specify a null band of evaluation.  The null
  628.        band is used by GAF to determine whether it's necessary to check
  629.        there are identical generations or not.
  630.  
  631. Segment Menu: Change segment and value
  632.    The segment menu offers user three major functions:
  633.        Select a segment for display or for following actions
  634.        Change/modify the segment
  635.        Control/change the display of the segment
  636.  
  637.    S: Segment number 
  638.        Use this option to select a segment.  The default selected segment
  639.        is the first segment (the segment 0).  The selected segment is
  640.        displayed in the display window and title window.  When selected, a
  641.        secondary menu pops up with names of all segments to allow user to
  642.        select the proper segment.
  643.  
  644.    E: Segment enabled 
  645.        To toggle enable or disable the selected segment.  If the segment is
  646.        enabled it will be marked with "x".  Note that when a segment is
  647.        disabled with this option, it will not be enabled by the "ENABLE"
  648.        condition defined in the FCL, however, when the option is enabled then
  649.        the "ENABLE" condition determines whether the segment is enabled or
  650.        not.
  651.  
  652.    C: Cycle time
  653.        Change the cycle time for the selected segment.  Note that the real
  654.        cycle time may depend on the running mode and time mode been
  655.        selected.  Refer to Schedule Policy section for more information.
  656.  
  657.    I: Set input value
  658.    O: Set output value
  659.    L: Set local variable value
  660.        These options allow user to manually set a variable's value.  After
  661.        select one of these options, GAF pops up a secondary menu with all
  662.        variable names alone with their variable number.  Select a variable,
  663.        GAF then requests for new value.  Enter the new desired value will
  664.        close all menus.  Note that you can use F7 to initialize the system,
  665.        see function key for detail.
  666.  
  667.    G: Set output gain
  668.        Use this selection to change the gain of selected output.  Again, just
  669.        like setting variable value, GAF asks for output variable and then
  670.        the new gain value.
  671.  
  672.    N: Enable rule
  673.    D: Disable rule
  674.        GAF allows you to enable or disable the rule(s) in any of the running
  675.        modes.  The disabled rules are marked with 'x' at the first column in
  676.        text window.  Select one of these options, GAF then highlights the
  677.        first rule at the second column in text window.  Use cursor keys to
  678.        move highlighted cursor and then press 'Enter' to enable or disable
  679.        the rule.
  680.  
  681.    A: Enable all rules
  682.        This option gives user an easy way to enable all rules.
  683.  
  684.    R: Display result
  685.        After changing the Display window's arrangement, i.e. selecting whole
  686.        display or no plot mode, use this option to select the desired output
  687.        you want to display.  Note that GAF automatically selects the first
  688.        output for display, if none is selected.
  689.  
  690.    F: Display rule firing
  691.        The above option (Display result) allows user to specify the output
  692.        to display, this option allows user to select rule to be displayed
  693.        with its detail inferencing in firing window.  When select this option,
  694.        like disable/enable rule, GAF uses the text window for selecting menu. 
  695.        Note that selected rules are marked with 'x'.
  696.  
  697.    M: Combined result only
  698.        When this option is selected, GAF deselects all rules from displaying
  699.        its inference (firing window).  So only the combined result will be
  700.        displayed.
  701.  
  702.    P: Preset to
  703.        Use this option to preset to a specific state defined by "PRESET"
  704.        statements in segment(s).  GAF will prompt for the preset number. 
  705.        Please refer to F8 of function key for similar function.
  706.  
  707.  
  708. Display Menu: Arrange Display Windows
  709.    The display menu allows user to arrange and select the screen layout,
  710.    text font, and color of the screen display.
  711.  
  712.    1: Use standard font
  713.    2: Use small font
  714.        With these two options, you can switch between normal text display
  715.        or small font text display.
  716.  
  717.    3: Select normal display mode
  718.        The normal display mode displays the text window on the left portion
  719.        of the display window and the plot window on the right.  See window
  720.        split for changing the size of text window.
  721.  
  722.    4: Select whole display mode
  723.        In this mode the text window still occupies the left portion, but the
  724.        right portion of the display window splits into two parts, the upper
  725.        half shows the plot window, and the lower half displays the combined
  726.        result and/or firing window.  See Segment section for more
  727.        information about selecting rules and outputs.  See window split for
  728.        changing size of text window.
  729.  
  730.    5: Select plot only mode
  731.        This option allows you to see only the plot.  GAF dedicates the entire
  732.        display window to plot sub-window except reduces the text window to
  733.        only first two columns on the left, which shows the status and rule
  734.        number.
  735.  
  736.    6: Select no plot mode
  737.        This display mode removes plot window from the right portion.  So the
  738.        combined result and/or firing window are displayed on the right along
  739.        with text window on the left.
  740.  
  741.    7: Select text only mode
  742.        This mode shows the text window only.  Because graphics, i.e. trend
  743.        plot, combined result, and firing condition, takes much of CPU time,
  744.        this mode allows you to speed up the test or control.
  745.  
  746.    P: Plot duration
  747.        The default plot frame period is five seconds (except in auto clock
  748.        mode).  Use this option to change the frame duration, the value is
  749.        specified in seconds.
  750.  
  751.    C: Color/monochrome
  752.        Use this option to switch between color and mono mode.
  753.  
  754.    W: Window split (Change size of text window)
  755.        Allows user to change the size of the text window.  The value is
  756.        specified in percent, i.e. 60 means that text window occupies 60% of
  757.        the display window.  If the value is greater than 90, GAF
  758.        automatically switches to text only mode.  If the value is less than
  759.        10, GAF shuts text window off (except the left most two columns).
  760.  
  761.    D: Display local variable
  762.        The default display mode is to display/plot IN, OUT, and INOUT
  763.        variables. The LOCAL variables are not displayed.  Use this option to
  764.        enable LOCAL variables.
  765.  
  766.  
  767. Adapt Menu: Setup adapt environment
  768.    The adapt menu is used to change the overall environment for genetic
  769.    adaptation.  See the Method section for more information about
  770.    controlling the genetic algorithm.
  771.  
  772.    C: Continuous mode
  773.        Set the adaptation to continuous mode without pause or delay, unless
  774.        user interferes.  The continuous mode is the default mode after
  775.        starting adaptation.
  776.  
  777.    P: Iteration pause
  778.    Y: Pause per cycle
  779.        These two options allow user to halt the adapting process in order
  780.        to examine it.  The iteration pause is to halt at the end of each
  781.        iteration.  The cycle pause is to halt at the end of each preset cycle. 
  782.        Type 'C' to continue, press Alt-C to switch back to continuous mode. 
  783.        Also see Iteration and Cycle delay.
  784.  
  785.    S: Sample number
  786.        Specifies number of samples should be taken for calculating each
  787.        preset test's evaluation result.
  788.  
  789.    W: Weight increment
  790.        GAF uses linear proportional weight for random selecting from the
  791.        gene pool.  This option is to set the linear increment of the weight. 
  792.        For example the increment is 2, then the weight for the best in the
  793.        gene pool will be 2 * 100 = 200, and the weight for the worst in the
  794.        pool will be 2.
  795.  
  796.    B: Max best items
  797.        The number of items kept in the best list (gene pool).  The limit of this
  798.        value is 1 to 10.
  799.  
  800.    I: Max iteration
  801.        This allows user to specify the maximum number of iterations.  GAF
  802.        stops after this number of iterations is reached.  If the value is
  803.        less than or equal to 0, there is no limit.
  804.  
  805.    T: Test time
  806.        As explained the test time is the time for each preset test before
  807.        evaluate the result.  Use this to set the proper value, in general it
  808.        should be greater than the rising time for the longest response in all
  809.        preset tests.
  810.  
  811.    D: Iteration delay
  812.    L: Cycle delay
  813.        Instead pause for each iteration/preset cycle, users can specify
  814.        time delay between iterations or preset cycles.  Zero value means
  815.        continuous.
  816.  
  817.    O: Minimum score
  818.        This value defines the minimum score for a successful preset test
  819.        cycle.  GAF tries to go through all preset tests, but stops after any
  820.        preset test failed to score the minimum value.  The default value is
  821.        0.6.
  822.  
  823.    A: Adapt segment
  824.        Use this option to change the segment you want to adapt.  The name
  825.        of the current selected adapt segment is shown on the next line in
  826.        the menu.  When selected, a secondary menu pops up with names of all
  827.        segments to allow user to select the proper segment.  Note that the
  828.        selected adapt segment may not be the same as the selected display
  829.        segment.
  830.  
  831.    U: Use best list
  832.    G: Use original segment
  833.        The first option allows user to pick one adaptation out of the best
  834.        list and then switch to simulation mode for testing or debugging.  The
  835.        "Use original segment" option allows user to switch back to the
  836.        original segment, which is loaded from the file.
  837.  
  838.    R: Reset best list
  839.        This option allows user to clear the gene pool, i.e. delete every
  840.        sample in the gene pool.
  841.  
  842.  
  843. Method Menu: Control Genetic Algorithm
  844.    The method menu allows user to control the adaptation algorithms by
  845.    setting new weight factor.  A method can be disabled by setting zero
  846.    weight.  For example, if no new rules are allowed then set "adding rules"
  847.    to zero.  The method menu is divided into two parts, the upper half for
  848.    changing weights for overall adapting methods.  The lower half is to
  849.    change the detailed weight for specific adapting method.
  850.  
  851.    Z: Zero all weights
  852.        This option zeros all weights in the upper half adapting methods.
  853.  
  854.    C: Change rules
  855.        The option changes the overall weight for adapting existing rules.
  856.  
  857.    I: Adjust input set
  858.    4: Adjust input set ...
  859.        The first option (in the upper half) changes the overall weight for
  860.        adapting input fuzzy membership set. The second option is used to
  861.        change the detail adapting weights inside input set adaptation.  When
  862.        the second option is selected, GAF pops up a sub menu under method
  863.        menu.  The followings are options in the sub menu.
  864.  
  865.        M: Mutate
  866.            Use this option to set the weight of mutation.
  867.  
  868.        C: Crossover
  869.            To set the weight of crossover for adjusting fuzzy set.
  870.  
  871.        I: Intensify/dilute
  872.            Set the weight of intensify and dilute for adjusting fuzzy input
  873.            set.
  874.  
  875.        B: Broaden/restrict
  876.            Set the weight of broaden and restrict for adjusting fuzzy input
  877.            set.
  878.  
  879.        S: Shift fuzzy set
  880.            Set the weight of shift fuzzy input set.
  881.  
  882.        T: Change truth
  883.            Set the weight of adjusting the truth of an input set.
  884.  
  885.        K: Scale (0 - 1)
  886.            The scale factor defines how much change is allowed for the
  887.            above methods, except mutate and crossover.  The amount is the
  888.            percentage of the member set.  One means 100% and zero means
  889.            none.
  890.  
  891.    A: Adding new rule
  892.        This option sets the weight of adding new rules into the adapting
  893.        segment.  See Maximum rules to define the limit of rules.
  894.  
  895.    E: En/dis-able rule
  896.        This option sets the weight of enable/disable existing rules in the
  897.        adapting segment.
  898.  
  899.    T: Alter cycle time
  900.        This option sets the overall weight of altering cycle time of the
  901.        segment.  The range of cycle time can be specified with max and min
  902.        cycle time.
  903.  
  904.    G: Alter output gain
  905.        This option sets the weight of adjusting the output gain to form a
  906.        new generation.
  907.  
  908.    1: Max cycle time
  909.    2: Min cycle time
  910.        These two values clamp the sample rate, the cycle time of the
  911.        segment.  GAF will not exceed these limits during adaptation when
  912.        adapting of cycle time is enabled (the weight for alter cycle time is
  913.        greater than 0).
  914.  
  915.    3: Maximum rules
  916.        This option allows user to set a limit for number of rules is allowed
  917.        during adaptation.  If the number is less than 1 there will be no limit.
  918.  
  919.  
  920.  
  921.  
  922. Function Keys
  923.  
  924.    F1: Get help
  925.        GAF provides context sensitive help.  Press F1 to call up the on-line
  926.        help.  Inside help you can jump to other topic by selecting listed
  927.        topic.
  928.  
  929.    F2: Display the system info
  930.        Press F2 to see the system limits.  The system info shows the version
  931.        of GAF, system wide limits, and current free memory status.
  932.        IO length (in bits)
  933.            the supported analog IO bits
  934.        Number of sets per segment
  935.            maximum number of fuzzy input sets in a segment
  936.        Number of rules per segment
  937.            maximum number of rules in a segment
  938.        Total variables per segment
  939.            maximum number of variables (IN, OUT, and LOCAL) in a segment
  940.        Number of segments
  941.            maximum number of segments in the system
  942.        Number of fuzzy symbols
  943.            maximum number of fuzzy symbols in a segment
  944.        Name length (IO & symbol)
  945.            number of characters for names (variable name or symbol name)
  946.        Number of best genes
  947.            the maximum limit of the gene pool (best list)
  948.  
  949.    F3: Next segment
  950.        Press F3 to switch the display segment, i.e., cycle through all
  951.        segments.
  952.  
  953.    F4: View segment information
  954.        Press F4 to see the variable definition, initialization and run
  955.        functions, and other information for the selected display segment.
  956.  
  957.    F5: View symbol definition
  958.        Press F5 to see the fuzzy set symbols' definition for this segment.
  959.  
  960.    F6: View preset definition
  961.        Press F6 to see the preset definition for this segment.
  962.  
  963.    F7: Initialize the system
  964.        The F7 function key allows you to initialize the system.  This is
  965.        defined in each segment's INITIALIZATION declaration.  GAF goes
  966.        through all segments to execute the initialization defined in each
  967.        segment and then resets the segment scheduler.
  968.  
  969.    F8: Preset the system
  970.        The F8 function key allows users cycle through all presets defined
  971.        for all segments during simulation.
  972.  
  973.    F9: Zero the system
  974.        Press F9 to zero all the inputs and outputs for all the segments
  975.        during simulation.
  976.  
  977.  
  978. Command Syntax
  979.    The command syntax for GA FuzzyWare is:
  980.        GAF [switches] [segment files]
  981.  
  982.    Available command switches are:
  983.        /DIR=dir_path  to specify the default directory for segment files
  984.        /CFG=file_name to specify the configuration file
  985.        /H or /?          help
  986.  
  987.    Examples:
  988.        GAF /dir=c:\gaf a1.seg a2.seg a3.seg
  989.            specifies all a1 ~ a3 files are under c:\gaf directory.
  990.  
  991.        GAF /dir=c:\gaf app.s00 /dir=c:\app app.s01 app.s02
  992.            specifies app.s00 under c:\gaf, both app.s01 and app.s02 are
  993.            under c:\app directory.
  994.  
  995.  
  996. Configuration
  997.    When starts up, GAF searches configuration file in following order
  998.        specified by /CFG command switch
  999.        "GAF.CFG" under current directory
  1000.        "GAF.CFG" at where GAF.EXE resides
  1001.    The configuration file is a text file for setting up the GAF environment. 
  1002.    The format of the configuration file is a series of "attribute =
  1003.    attribute_value;".  The attribute can be in any order and can be defined
  1004.    multiple times with the latter value overrides the previous value.  The
  1005.    configuration attribute can also be included inside FCL module file by
  1006.    enclosing it within "CONFIGURATION" and "END_CONFIGURATION;" keywords. 
  1007.    Because FCL modules are processed after GAF.CFG, so FCL's configuration
  1008.    will override GAF.CFG.  Please refer to FCL.DOC for details.
  1009.